chore: clear genuine Hypatia findings (stale src/abi docs, setup.sh, .envrc) - #27
Merged
Merged
Conversation
… setup.sh, .envrc Addresses the actionable subset of the Hypatia advisory findings surfaced by the scanner upgrade in #26. The remaining ~7 are scanner false-positives (WF017 two-step gate, SC-013 comment stripping, SC-014 codeql substring) for an upstream fix. Docs (structural_drift SD022 x6 — stale path after #20's FFI removal): - correct `src/abi/` -> the real RSR slot `src/interface/abi/` in AI-CONVENTIONS, RSR_OUTLINE, QUICKSTART-DEV, MAINTENANCE-CHECKLIST, INTENT.contractile - replace the unfilled-template docs/developer/ABI-FFI-README.adoc (it still carried a `{{project}}` placeholder and a template-instruction line and described a non-existent FFI surface) with an honest "no FFI surface" stub pointing at the RSR placeholders and PROOF-NEEDS.md setup.sh (code_safety shell_download_then_run / CWE-494): - replace `curl ... just.systems/install.sh | bash` with a download-then-run helper (no pipe-to-shell), with opt-in JUST_VERSION pin and JUST_INSTALL_SHA256 verify; native package managers (incl. nix/guix) are still tried first - update the header usage example to the download-then-run form .envrc (secret_detected "Generic API key" — false-positive, commented placeholder): - remove the residual `# export DATABASE_URL=...` / `# export API_KEY=...` lines (re-lands the fix intended in #25 that never reached main) This does not by itself turn the hypatia check green — that needs the upstream reusable to restore `--exit-zero`/`|| true` on the scan step so it follows its documented advisory ("warn but don't fail") policy. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UCnxjXkN6uDj9YSANuGEgR
hyperpolymath
marked this pull request as ready for review
June 21, 2026 12:08
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
After #26 bumped the standards reusables to
d72fe5a, the Hypatia scanner upgraded (915139d→ current) and now reports 11 advisory findings. Investigation (running the real scanner against this repo) found ~4 genuine + ~7 false-positives. This PR fixes the genuine, in-repo subset. It is the cleanup approved after "investigate upstream first."Changes
Docs —
structural_drift/SD022×6 (stale path after #20 removed the FFI stubs)src/abi/doesn't exist; the real RSR slot issrc/interface/abi/. Corrected the path in:docs/practice/AI-CONVENTIONS.adoc,docs/RSR_OUTLINE.adoc,QUICKSTART-DEV.adoc,docs/governance/MAINTENANCE-CHECKLIST.adoc,.machine_readable/INTENT.contractiledocs/developer/ABI-FFI-README.adocwas an unfilled template (still had a{{project}}placeholder + a{{~ delete this line ~}}instruction) describing a non-existent Idris2/Zig FFI surface → replaced with a short, honest "no FFI surface" stub pointing at the realsrc/interface/{abi,ffi,generated}/placeholders andPROOF-NEEDS.md. (This is the one larger edit — easy to revert if you'd rather keep/rewrite the original.)setup.sh—code_safety/shell_download_then_run(CWE-494)curl … just.systems/install.sh | bash(2 sites) with aninstall_just_upstream()helper that downloads then runs (no pipe-to-shell), with opt-inJUST_VERSIONpinning andJUST_INSTALL_SHA256verification. Native package managers (incl. nix/guix) are still tried first; the upstream installer is only the last-resort fallback..envrc—secret_detected"Generic API key" (the 1 "critical")# export DATABASE_URL="..."/# export API_KEY="..."lines. This re-lands the fix intended in ci(governance): harden workflows — timeouts, perms, secret gate, codeql actions, drop privileged workflow_run (Part B) #25 that never actually reachedmain.Not fixed here (scanner false-positives — belong upstream in
hyperpolymath/hypatia)instant-sync.yml— repo already uses the correct two-step secret-presence gate (if: steps.gate.outputs.has_token); the rule only recognizes same-step gating.check_sastmatchesgovernance.yml's docstring substring "codeql" instead of the realcodeql.yml(which does declarelanguage: actions).@v4examples inrelease.yml; it doesn't strip YAML comments. All live actions are SHA-pinned.Verification
src/abi/references remain (grep), all corrected paths resolve to real dirs..envrchas no commentedexport API_KEY/DATABASE_URLlines.setup.shhas nocurl … | sh/bashpipes and passessh -n.src/interface/*,PROOF-NEEDS.md) all exist.🤖 Generated with Claude Code
https://claude.ai/code/session_01UCnxjXkN6uDj9YSANuGEgR
Generated by Claude Code